Memory deduplication analyzes patterns of information by segmenting a dataset into, for example, variable length blocks and searching for recurring blocks. All identical successive blocks are replaced with a pointer to the respective initial detected block instead of storing the block again. When reading the file, the pointer series ensures that all the blocks are accessed in the exact order. Memory deduplication improves memory utilization by detecting that two (or more) pages in memory have identical content.
RDMA typically allows a computer system to directly read or modify the memory of another computer system using “zero-copy,” which refers to a memory allocation technique that provides computer systems with the ability to directly write data to and read data from remote memory and allows applications that implement RDMA to access remote buffers directly without the need to copy it between different software layers. An RDMA-enabled network interface adapter establishes connections to transfer the data directly between specified buffers in the user-space memory. Accordingly, this zero-copy approach is much more efficient than requiring multiple data transfers on each side of the network.
Unfortunately, if an application registers memory for RDMA, memory deduplication is disabled, even if the registration is for read access only. In this case, memory is not overcommitted.